In general, a server is a computer that services requests from one or more client computers linked by a network. For instance, a SQL server is a specialized computer that provides database access in response to SQL-coded client requests. Similarly, a web server is a specialized computer that provides web pages in response to web page requests.
The principal component to such a server is its specialized server application. Such an application typically includes a complex set of programs, configuration information, and data files, among other things. Additionally, such an application typically imposes a stringent set of minimal computer requirements to operate properly. Microsoft SQL Server® offered by Microsoft Corporation of Redmond, Wash. is an example of a SQL application. Apache HTTP Server offered by the Apache Software Foundation of Forest Hill, Md. is an example of a web server application. Microsoft Exchange Server® offered by Microsoft Corporation is an example of a messaging and collaborative software application.
The underlying hardware and operating system provide resources (e.g., compute time, memory, bandwidth, data storage, etc.) that enable the server application to achieve its various functions. For certain security protection services that the server application or operating system is otherwise incapable of otherwise obtaining (e.g., specialized anti-virus protection, firewall protection, and spam filtering), an independent application can be added to the server to provide those services.
In addition to the operating system services and the security protection services that an application can receive while running on a server, the application may require additional resources over time. For example, there may be a need to increase the application's throughput or storage capacity as demands on the application and the server grow. At some point, it may no longer be practical or even possible to (i) increase the server's compute power by simply upgrading or adding processors on the server, or (ii) increase the server's storage capacity by simply adding more disk drives or replacing existing disk drives with higher capacity disk drives.
Once upgrading the individual components of the server is no longer possible or practical, the typical approach to increasing the capabilities of the application (e.g., the application's throughput and storage capacity) is to replace the original server with a new more powerful server that has more computer power and memory capacity. To this end, a technician often makes a copy of the application's data and manually stores that copy on the new more powerful server. The technician further shuts down the original server and runs a new version of the application on the new more powerful server.